No change has been made to the definition of the Person class*. A new class has been defined, called Student. The notation 'Student:Person' here indicates that the new class is DERIVED from the Person class. (Since the Person class was itself defined with the 'indirect' specifier, the derived class is also indirect.)
A derived class ("child", "descendant", "subclass") is one which inherits the instance variables and methods of its base class ("parent", "ancestor"). In this case, any object of type Student will contain age and weight instance variables even if no such variables are explicitly declared in the definition of the Student class. They are inherited from the Person class.
Likewise, if no set() or print() methods are defined in the Student class definition, a Student object will still accept set and print messages by accessing the methods defined for the Person class. (In C++ the programmer must use the 'virtual' keyword in the base class declaration of these methods in order to enable the inheritance effect.)